The “Internet of Things” (IoT) refers to the concept of things, especially everyday objects, which are addressable, readable, and/or controllable via the Internet. In particular, the IoT is a global network of computers, sensors, and actuators connected through Internet protocols. The IoT is therefore formed from an increasingly huge number of devices (e.g. predicted to be 50 billion by 2020), and the ubiquity of these devices implies that they need to be connected to the Internet via all kinds of networks, from NAT-based home networks to mobile telecommunications networks. Furthermore, many of these devices are constrained (e.g. wireless sensors) in that they have limited resources and are powered only by batteries. Therefore, in order to extend the battery life, such devices need to have low power consumption and are usually configured to spend significant periods of time sleeping (i.e. being inactive) in order to conserver energy. Consequently, any proposal relating to the IoT should be scalable, easily deployable in networks with firewalls/NATs, and energy efficient in that it should allow devices to sleep as much as possible.
In this regard, peer-to-peer (P2P) technologies have been designed to be scalable, providing the capability to support millions of simultaneous peers. In particular, the Peer-to-Peer (P2P) Session Initiation Protocol (SIP) Working Group (P2PSIP WG) of the Internet Engineering Task Force (IETF) has defined the Resource LOcation And Discovery (RELOAD) base protocol to provide clients with an abstract storage and messaging service between a set of cooperating peers that form an overlay network, which uses a Distributed Hash Table (DHT) algorithm to determine which peers in the overlay network store a particular piece of data. The RELOAD base protocol has also been designed to work in all kinds of network, even in presence of firewalls and NATs.
In addition, the Constrained RESTful Environments (CoRE) Working Group of IETF has defined the Constrained Application Protocol (CoAP), wherein CoAP is a specialized web transfer protocol for use with constrained networks and nodes for Machine-to-Machine (M2M) applications. CoAP realizes the Representational State Transfer (REST) architecture for the most constrained nodes, such as sensors and actuators, and networks. CoAP can be used not only between nodes on the same constrained network but also between constrained nodes and nodes on the Internet. CoAP is a lightweight client-server protocol that runs on top of the User Datagram Protocol (UDP) and aims to be easily translated to Hypertext Transfer Protocol (HTTP) by using URI and Method/Response semantics.
Consequently, there are existing proposals for interworking both the RELOAD base protocol and CoAP for implementing the IoT. For instance, “A Constrained Application Protocol (CoAP) Usage for REsource Location And Discovery (RELOAD)” (draft-jimenez-p2psip-coap-reload-02) is an IETF Internet Draft that proposes the use of a RELOAD-based DHT for the interconnection of COAP-based Wireless Sensor Networks (WSN).
Whilst such solutions provide the desired scalability, they have not considered the sleepy behaviour of constrained devices, as this changes one of the main assumptions about Internet hosts, that is, that they can be contacted at any time. In particular, both RELOAD and CoAP assume that nodes (i.e. either peers/clients or CoAP servers/gateways) are always able to receive messages, which would require IoT devices, or at least their wireless interface, to be fully awake all time, thereby severely limit the lifetime of a battery-powered device. In addition, in order to be small and cheap, many constrained devices will not have a dedicated control/management interface (e.g. a USB port), but will rely on the same network interface employed for the data plane. Therefore, it is not possible to send control or management commands to sleeping devices, unless some additional synchronization or rendezvous mechanism is in place.
Furthermore, this has not yet been considered a problem, as it has been assumed that wireless sensors can be sleeping most of the time, can awaken periodically to send messages with the latest measurement(s), and promptly go back to sleep. Whilst this behaviour may be acceptable for the data plane, this is not the case for the control and management planes, which will typically require that messages can be sent to a device at any time, and has so far been overlooked. However, the control and management planes are essential for the correct operation of all kinds of networks, and this is equally the case for the IoT. As an example, a control plane operation could be to configure a sensor with the initial configuration information, such as the CoAP URI to which it should send its measurements, the time between those measurements, thresholds to filter events, etc. As a further example, a management plane operation could be obtaining the statistics about transmitted/received packets.